/*
 * @lc app=leetcode.cn id=11 lang=java
 *
 * [11] 盛最多水的容器
 */

// @lc code=start
// 双指针
class Solution {

    public int maxArea(int[] height) {
        int len = height.length;
        if (len < 2)
            return 0;
        int result = 0, tmp = 0;
        for (int i = 0, j = len - 1; i < j;) {
            tmp = Math.min(height[i], height[j]) * (j - i);
            if (tmp > result)
                result = tmp;
            if (height[i] > height[j]) {
                j--;
            } else {
                i++;
            }
        }
        return result;
    }
}
// @lc code=end

// // 两层for循环+剪枝
// class Solution {

// public int min(int a, int b) {
// if (a > b)
// return b;
// return a;
// }

// public int maxArea(int[] height) {
// int n = height.length;
// int result = 0;
// for (int i = 0; i < n - 1; i++) {
// if (height[i] * (n - i) > result) { // 这个剪枝非常关键，不然超时
// for (int j = i + 1; j < n; j++) {
// int tmp = min(height[i], height[j]) * (j - i);
// if (tmp > result)
// result = tmp;
// }
// }
// }
// return result;
// }
// }